// 全局变量和初始化
document.addEventListener('DOMContentLoaded', function() {
    // 初始化所有工具提示（Bootstrap 功能）
    const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]');
    const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl));

    // 初始化其他功能...
    initBloodSugarChart();
    setupFormValidation();
});

// 1. 血糖图表功能（使用 Chart.js）
function initBloodSugarChart() {
    const ctx = document.getElementById('bloodSugarChart');
    if (ctx) {
        // 从页面获取数据（也可以通过 AJAX 从后端获取）
        const labels = JSON.parse(ctx.dataset.labels || '[]');
        const data = JSON.parse(ctx.dataset.data || '[]');

        new Chart(ctx, {
            type: 'line',
            data: {
                labels: labels,
                datasets: [{
                    label: '血糖值 (mmol/L)',
                    data: data,
                    borderColor: '#36A2EB',
                    backgroundColor: 'rgba(54, 162, 235, 0.1)',
                    tension: 0.3,
                    fill: true
                }]
            },
            options: {
                responsive: true,
                plugins: {
                    title: {
                        display: true,
                        text: '最近血糖趋势'
                    },
                    tooltip: {
                        mode: 'index',
                        intersect: false
                    }
                },
                scales: {
                    y: {
                        min: 0,
                        max: 20,
                        ticks: {
                            stepSize: 2
                        }
                    }
                }
            }
        });
    }
}

// 2. 表单验证（如血糖记录表单）
function setupFormValidation() {
    const forms = document.querySelectorAll('.needs-validation');
    forms.forEach(form => {
        form.addEventListener('submit', function(event) {
            if (!form.checkValidity()) {
                event.preventDefault();
                event.stopPropagation();
            }
            form.classList.add('was-validated');
        });
    });
}

// 3. 血糖记录提交（AJAX 请求）
function submitBloodSugarRecord() {
    const formData = {
        user_id: document.getElementById('user_id').value,
        time: document.getElementById('record_time').value,
        amount: parseFloat(document.getElementById('blood_sugar').value),
        calorie: parseInt(document.getElementById('calorie').value)
    };

    fetch('/api/health-data/blood-sugar', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(formData)
    })
    .then(response => response.json())
    .then(data => {
        if (data.code === 200) {
            alert('记录提交成功！');
            // 刷新页面或更新图表
            window.location.reload();
        } else {
            alert('提交失败：' + data.msg);
        }
    })
    .catch(error => {
        console.error('Error:', error);
        alert('网络错误，请稍后重试');
    });
}

// 4. 预测分析功能（模拟调用 API）
function predictDiabetesRisk() {
    const userId = document.getElementById('user_id').value;

    fetch(`/api/predict/diabetes-risk?user_id=${userId}&days=7`, {
        method: 'GET'
    })
    .then(response => response.json())
    .then(data => {
        if (data.code === 200) {
            // 更新预测结果显示
            const resultElement = document.getElementById('prediction-result');
            resultElement.innerHTML = `
                <p>未来7天风险预测：</p>
                <ul>
                    ${data.data.predictions.map((value, index) => `
                        <li>${data.data.dates[index]}: ${value.toFixed(2)} mmol/L (${value > 7 ? '高风险' : '正常'})</li>
                    `).join('')}
                </ul>
            `;
        } else {
            alert('获取预测失败：' + data.msg);
        }
    })
    .catch(error => {
        console.error('Error:', error);
        alert('网络错误，请稍后重试');
    });
}

// 5. 智能问答功能（与后端 AI 接口交互）
function sendQuestion() {
    const question = document.getElementById('user-question').value;
    const userId = document.getElementById('user_id').value;

    if (!question.trim()) {
        alert('请输入问题');
        return;
    }

    fetch('/api/ai/chat', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify({
            question: question,
            user_id: userId
        })
    })
    .then(response => response.json())
    .then(data => {
        if (data.code === 200) {
            // 添加对话到聊天窗口
            const chatWindow = document.getElementById('chat-window');
            chatWindow.innerHTML += `
                <div class="user-message">
                    <p>你：${question}</p>
                </div>
                <div class="ai-message">
                    <p>智能助手：${data.data.answer}</p>
                </div>
            `;
            // 滚动到底部
            chatWindow.scrollTop = chatWindow.scrollHeight;
            // 清空输入框
            document.getElementById('user-question').value = '';
        } else {
            alert('提问失败：' + data.msg);
        }
    })
    .catch(error => {
        console.error('Error:', error);
        alert('网络错误，请稍后重试');
    });
}